The present invention relates to a motion vector estimation system which is used for encoding a moving picture.
A motion compensated interframe prediction method using block matching, has been standardized and widely used as a technology of high-efficiently encoding moving picture data. However, since it is necessary to estimate a motion vector in order to realize an interframe prediction, a calculation became a vast amount to search a wide range. As a result, there are the problems that a system scale becomes larger, and that it is difficult to perform a real time processing.
There has been known a system disclosed in JP-A-1-166684/1989, which aims to improve an accuracy in motion estimation with a decrease of a calculation amount. The system can set an offset value at a center position of a search window for motion vector estimation corresponding to one. When the motion vector is detected at an end of the search window, an offset value of the next frame is set to a position of the end of the search window. By the shifting the search window in the manner, the search window of the motion vector is apparently expanded.
FIG. 13 is a block diagram showing a conventional motion vector estimation system. A frame memory 201 stores reference picture data. For a search of a motion vector, a difference calculating section 203 obtains a difference between an input current picture and a reference picture at a representative point which is set by a representative point setting section 202 for referring it corresponding to a search motion vector and offset values which are respectively set by a horizontal offset control section 206 and vertical offset control section 207. A frame difference adding section 204 calculates a total sum of differences between reference and current pictures, and a minimum value detecting section 205 estimates a motion vector which represents the minimum value of the total sum of differences between the pictures, then it outputs horizontal and vertical motion vector components. A final motion vector value is calculated by means of adders 210 and 211 which add offset values to the horizontal and vertical componet values, respectively, the offset values which are selected by selectors 208 and 209, respectively, according to offset designations which are respectively supplied from the horizontal and vertical offset control sections 206 and 207, which will set new offset values for searching the next motion vector according to the output of the minimum value detecting section 205.
Assuming that an offset value of the n-th frame is .delta.V(n) under the observation of only one directional component, an offset setting method is set by the equation as follows: EQU .delta.V(n+1)=.delta.V(n)+.alpha..multidot..DELTA.V . . . (1).
When .delta.V is a range of search window, a motion vector V is estimated in the range as follows: EQU -.DELTA.V.ltoreq.V.ltoreq..DELTA.V . . . (2)
where a value of .alpha. is set as follows: EQU .alpha.=1 if V=.DELTA.V EQU .alpha.=-1 if V=-.DELTA.V . . . (3) EQU .alpha.=0 else.
Further, there has been well known the method disclosed in JP-A-5-328333/1993 as the method different from the above-mentioned method. In this method, the search window is changed over at each block based on a result of the past motion vector.
FIG. 14 is a block diagram showing the conventional motion vector estimation system. A motion vector estimation circuit 301 estimates a motion vector whose a predictive error is the minimum value within the search window designated by a selector 304, based on input data of the current picture and reference picture data. The motion vector is outputted to a motion compensator which is not shown in the figure, and inputted to motion vectors memory 302.
The motion vector memory 302 stores a motion vector for one-frame term so as to output them to a search window decision circuit 303 as a motion vector of the block which has the same spatial position as that of the previous frame. The search window decision circuit 303 decides a search window of the motion vector in an objective block in the present frame corresponding to size and direction of the motion vector in the previous frame. The selector 304 selects and outputs one of search windows 305 to 307 corresponding to the decided result of the decision circuit 303. The motion vector estimation circuit 301 performs a motion vector estimation according to the selected search window.
A kind of the search windows includes a normal search window (FIG. 15A), a search window for attaching importance to the horizontal direction shown by a border of a solid line (FIG. 15B), a search window for attaching importance to the vertical direction shown by a border of a solid line (FIG. 15C), and a search window for attaching importance to the diagonal direction shown by a border of a solid line (FIG. 15D). Alternatively, it is possible to use search windows which have modified shapes to the normal search window (FIG. 16A), such as a search window for attaching importance to the horizontal direction shown by a border of a solid line (FIG. 16B), a search window for attaching importance to the vertical direction shown by a border of a solid line (FIG. 16C).
The first problem resides in that the optimum motion vector can not be estimated according to the method of shifting the search window only when the estimated motion vector is the specific value. It is impossible to estimate the optimum motion vector in the search window because the search window can not follow the motion vector in some occurrence of the motion vector.
The second problem resides in that the optimum motion vector can not be estimated according to the method of changing over the search windows corresponding to the size and direction of the estimated motion vector. Because this method can select the search windows only in the specific kinds.
The third problem resides in that the optimum motion vector can not be estimated according to the method of changing over the search window at each of blocks. Because it often happens to miss a prediction of the search window in a boundary section of the motion.
The fourth problem resides in that the optimum motion vector can not be estimated according to the method of using the motion vector as it is and which is estimated from the immediately before the coded picture. Because a scale of the motion vector does not coincide with each other in any kind of pictures according to a picture coding method in which a time interval between a reference picture and a coded picture changes.